1. Field of the Invention
The invention relates to a method for evaluating a production rule, the production rule being used especially as a test input process for a memory management analysis of a server.
Server processes used to manage client requests must have particular characteristics in order to ensure at least a stability of a system. Furthermore they have to be optimized in terms of speed and responsiveness to the requests of clients. During their development, the server processes have to undergo several thorough tests in order to ensure the above mentioned characteristics. Particularly, one critical issue in a test phase is memory management behaviour of each server process. Thus, a memory management analysis has to be carried out in order to evaluate a performance of a server process. The memory management analysis consists in monitoring a totality of private bytes of the process, in other words an entire memory space of the process. This monitoring aims to find out if the number of private bytes steadily increases or if a nearly constant number of bytes is present. In case the number steadily increases, it is a sign that there may be problems in the design of the process such that memory leaks are generated. Memory leaks are a common problem in software design arising from allocation of memory chunks for the process and failure to deallocate or release the memory chunks as soon as they are no longer needed. This problem is particularly severe in the frequent case that the process is called several times or in defined time periods within a session. This results in the steady increase of the private bytes of the process and in the worst case in a complete memory lock, the later further resulting in a collapse of an entire underlying system wherein the process is running.
The memory management analysis and eventually a resulting resolution of memory leak problems avoid a system or a process crash due to full system memory. The analysis of the private bytes of the process is a quite complicated task because the memory management of the process's memory depends on several parameters like the process itself, an operating system, a framework used for the process, etc. Especially in manufacturing execution systems, the memory management analysis also depends on a quality of tests performed, for example a specification of a sufficient period of time the test has to run in order to gather enough information about memory behaviour. Furthermore, the quality of the test input process or the production rule, modules and parameters is very important in order to avoid erroneous conclusions from the analysis. For example, a production rule itself may induce memory leaks into the system. Another example is an inappropriate production rule which, by its intended behaviour, will increase memory consumption due to internal algorithms which are correct. This increase in memory consumption could lead to misinterpretation of a result of the analysis, suggesting memory leaks where in reality no memory leaks are present.
Thus, in order to reach a correct and accurate evaluation of a memory management analysis, an operator has to exclude all possibilities of errors outside of the server process to be tested. In manufacturing execution systems, the test input process is a production rule characterizing steps to be taken in a certain order within a manufacturing process. The production rule includes data manipulation within the production process by retrieving information from a database for example about a status of a sensor. The database is located in a central server and is accessed by several clients residing in different areas of a production site by an internal network. The server process is responsible for a management of data requests from all clients. In order to perform the memory management analysis for the server process, at least one production rule has to be run on the server in order to monitor the memory space behaviour over a certain period of time.
Especially in manufacturing execution systems, the client requests may represent very complicated production rules because of hundreds of possible different types of calls. Furthermore, many production rules make calls to other procedures, as a consequence further augmenting the complexity. Thus, for the memory trend analysis, this complexity makes it necessary to spend a considerable amount of time in order to sort the different type of calls and identify possible memory leaks.
In order to ensure a reliable memory management analysis and to simplify a process of searching errors, it is necessary to understand which production rules are suitable for the analysis, thus, the at least one production rule has to be evaluated in order to ensure its suitability for the analysis.
One goal to be achieved is to be seen in providing a method for evaluating a production rule, aiming to determine a usability of the production rule as a test input process for the memory management analysis of the server process.